﻿/**
*    Copyright (C) 2008  Chase Kernan 
*    chase.kernan@gmail.com
*
*    This program is free software: you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*    the Free Software Foundation, either version 3 of the License, or
*    (at your option) any later version.
*
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with this program.  If not, see <http://www.gnu.org/licenses/>.
* 
**/

package com.chasekernan.hxnova.server.functions;

import com.chasekernan.hxnova.core.dataholders.Global;
import com.chasekernan.hxnova.core.stars.Star;

/**
    Handles production, *mining*, and *pop growth*.
**/
class Production {
    
    public static function run() {
        for (star in Global.stars) {
            if (star.owner == null || 
                    star.owner.id == Global.players.nullPlayer.id || 
                    star.production == null || !star.isInhabited()) {
                continue;
            }
            
            var resourcesNotUsed = star.production.run();
            star.owner.addResearch(star.owner.researchField.field, 
                                   resourcesNotUsed);
            
            star.population += star.calculateGrowth(); 
            //might have lost colonists
            star.checkPopulation();
        }
    }
    
}